home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Devices.h
-
- Contains: Device Manager Interfaces.
-
- Version: Mac OS 8
-
- DRI: Nick Kledzik
-
- Copyright: © 1985-1999 by Apple Computer, Inc., all rights reserved
-
- Warning: *** APPLE INTERNAL USE ONLY ***
- This file may contain unreleased API's
-
- BuildInfo: Built by: Scott Johnson
- On: 10/8/99 11:26 AM
- With Interfacer: 3.0d13 (MPW PowerPC)
- From: Devices.i
- Revision: 103
- Dated: 5/8/99
- Last change by: SAJ
- Last comment: Oops, that should've been kPowerManagementCommand down below.
-
- Bugs: Report bugs to Radar component "System Interfaces", "Latest"
- List the version information (from above) in the Problem Description.
-
- */
- #ifndef __DEVICES__
- #define __DEVICES__
-
- #ifndef __OSUTILS__
- #include <OSUtils.h>
- #endif
-
- #ifndef __FILES__
- #include <Files.h>
- #endif
-
- #ifndef __QUICKDRAW__
- #include <Quickdraw.h>
- #endif
-
- #ifndef __NAMEREGISTRY__
- #include <NameRegistry.h>
- #endif
-
- #ifndef __CODEFRAGMENTS__
- #include <CodeFragments.h>
- #endif
-
- #ifndef __DRIVERFAMILYMATCHING__
- #include <DriverFamilyMatching.h>
- #endif
-
-
-
-
- #if PRAGMA_ONCE
- #pragma once
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
-
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
-
- /* Values of the 'message' parameter to a Chooser device package */
- enum {
- chooserInitMsg = 11, /* the user selected this device package */
- newSelMsg = 12, /* the user made new device selections */
- fillListMsg = 13, /* fill the device list with choices */
- getSelMsg = 14, /* mark one or more choices as selected */
- selectMsg = 15, /* the user made a selection */
- deselectMsg = 16, /* the user canceled a selection */
- terminateMsg = 17, /* allows device package to clean up */
- buttonMsg = 19 /* the user selected a button */
- };
-
-
- /* Values of the 'caller' parameter to a Chooser device package */
- enum {
- chooserID = 1
- };
-
-
- /* Values of the 'message' parameter to a Monitor 'mntr' */
- enum {
- initMsg = 1, /*initialization*/
- okMsg = 2, /*user clicked OK button*/
- cancelMsg = 3, /*user clicked Cancel button*/
- hitMsg = 4, /*user clicked control in Options dialog*/
- nulMsg = 5, /*periodic event*/
- updateMsg = 6, /*update event*/
- activateMsg = 7, /*not used*/
- deactivateMsg = 8, /*not used*/
- keyEvtMsg = 9, /*keyboard event*/
- superMsg = 10, /*show superuser controls*/
- normalMsg = 11, /*show only normal controls*/
- startupMsg = 12 /*code has been loaded*/
- };
-
-
- /* control codes for DeskAccessories */
- enum {
- goodbye = -1, /* heap being reinitialized */
- killCode = 1, /* KillIO requested */
- accEvent = 64, /* handle an event */
- accRun = 65, /* time for periodic action */
- accCursor = 66, /* change cursor shape */
- accMenu = 67, /* handle menu item */
- accUndo = 68, /* handle undo command */
- accCut = 70, /* handle cut command */
- accCopy = 71, /* handle copy command */
- accPaste = 72, /* handle paste command */
- accClear = 73 /* handle clear command */
- };
-
- /* Control/Status Call Codes */
- enum {
- drvStsCode = 8, /* status call code for drive status */
- ejectCode = 7, /* control call eject code */
- tgBuffCode = 8 /* set tag buffer code */
- };
-
- /* miscellaneous Device Manager constants */
- enum {
- ioInProgress = 1, /* predefined value of ioResult while I/O is pending */
- aRdCmd = 2, /* low byte of ioTrap for Read calls */
- aWrCmd = 3, /* low byte of ioTrap for Write calls */
- asyncTrpBit = 10, /* trap word modifier */
- noQueueBit = 9 /* trap word modifier */
- };
-
- /* flags used in the driver header and device control entry */
- enum {
- dReadEnable = 0, /* set if driver responds to read requests */
- dWritEnable = 1, /* set if driver responds to write requests */
- dCtlEnable = 2, /* set if driver responds to control requests */
- dStatEnable = 3, /* set if driver responds to status requests */
- dNeedGoodBye = 4, /* set if driver needs time for performing periodic tasks */
- dNeedTime = 5, /* set if driver needs time for performing periodic tasks */
- dNeedLock = 6 /* set if driver must be locked in memory as soon as it is opened */
- };
-
- enum {
- dNeedLockMask = 0x4000, /* set if driver must be locked in memory as soon as it is opened */
- dNeedTimeMask = 0x2000, /* set if driver needs time for performing periodic tasks */
- dNeedGoodByeMask = 0x1000, /* set if driver needs to be called before the application heap is initialized */
- dStatEnableMask = 0x0800, /* set if driver responds to status requests */
- dCtlEnableMask = 0x0400, /* set if driver responds to control requests */
- dWritEnableMask = 0x0200, /* set if driver responds to write requests */
- dReadEnableMask = 0x0100 /* set if driver responds to read requests */
- };
-
-
- /* run-time flags used in the device control entry */
- enum {
- dOpened = 5, /* driver is open */
- dRAMBased = 6, /* dCtlDriver is a handle (1) or pointer (0) */
- drvrActive = 7 /* driver is currently processing a request */
- };
-
- enum {
- drvrActiveMask = 0x0080, /* driver is currently processing a request */
- dRAMBasedMask = 0x0040, /* dCtlDriver is a handle (1) or pointer (0) */
- dOpenedMask = 0x0020 /* driver is open */
- };
-
-
-
- struct DRVRHeader {
- short drvrFlags;
- short drvrDelay;
- short drvrEMask;
- short drvrMenu;
- short drvrOpen;
- short drvrPrime;
- short drvrCtl;
- short drvrStatus;
- short drvrClose;
- unsigned char drvrName[1];
- };
- typedef struct DRVRHeader DRVRHeader;
- typedef DRVRHeader * DRVRHeaderPtr;
- typedef DRVRHeaderPtr * DRVRHeaderHandle;
-
- struct DCtlEntry {
- Ptr dCtlDriver;
- volatile short dCtlFlags;
- QHdr dCtlQHdr;
- volatile long dCtlPosition;
- Handle dCtlStorage;
- short dCtlRefNum;
- long dCtlCurTicks;
- GrafPtr dCtlWindow;
- short dCtlDelay;
- short dCtlEMask;
- short dCtlMenu;
- };
- typedef struct DCtlEntry DCtlEntry;
-
- typedef DCtlEntry * DCtlPtr;
- typedef DCtlPtr * DCtlHandle;
-
- struct AuxDCE {
- Ptr dCtlDriver;
- volatile short dCtlFlags;
- QHdr dCtlQHdr;
- long dCtlPosition;
- Handle dCtlStorage;
- short dCtlRefNum;
- long dCtlCurTicks;
- GrafPtr dCtlWindow;
- short dCtlDelay;
- short dCtlEMask;
- short dCtlMenu;
- SInt8 dCtlSlot;
- SInt8 dCtlSlotId;
- long dCtlDevBase;
- Ptr dCtlOwner;
- SInt8 dCtlExtDev;
- SInt8 fillByte;
- UInt32 dCtlNodeID;
- };
- typedef struct AuxDCE AuxDCE;
- typedef AuxDCE * AuxDCEPtr;
- typedef AuxDCEPtr * AuxDCEHandle;
- /* The NDRV Driver IO Entry Point and Commands */
-
- typedef UInt16 UnitNumber;
- typedef UInt32 DriverOpenCount;
- typedef SInt16 DriverRefNum;
- typedef SInt16 DriverFlags;
- typedef UInt32 IOCommandCode;
- enum {
- kOpenCommand = 0,
- kCloseCommand = 1,
- kReadCommand = 2,
- kWriteCommand = 3,
- kControlCommand = 4,
- kStatusCommand = 5,
- kKillIOCommand = 6,
- kInitializeCommand = 7, /* init driver and device*/
- kFinalizeCommand = 8, /* shutdown driver and device*/
- kReplaceCommand = 9, /* replace an old driver*/
- kSupersededCommand = 10, /* prepare to be replaced by a new driver*/
- kSuspendCommand = 11, /* prepare driver to go to sleep*/
- kResumeCommand = 12 /* wake up sleeping driver*/
- };
-
- enum {
- /* one more IOCommandCode*/
- kPowerManagementCommand = 13 /* power management command, supercedes kSuspendCommand and kResumeCommand*/
- };
-
- typedef struct OpaqueAddressSpaceID* AddressSpaceID;
- typedef struct OpaqueIOCommandID* IOCommandID;
- typedef UInt32 IOCommandKind;
- enum {
- kSynchronousIOCommandKind = 0x00000001,
- kAsynchronousIOCommandKind = 0x00000002,
- kImmediateIOCommandKind = 0x00000004
- };
-
-
- struct DriverInitInfo {
- DriverRefNum refNum;
- RegEntryID deviceEntry;
- };
- typedef struct DriverInitInfo DriverInitInfo;
- typedef DriverInitInfo * DriverInitInfoPtr;
-
- typedef DriverInitInfo DriverReplaceInfo;
- typedef DriverInitInfo * DriverReplaceInfoPtr;
-
- struct DriverFinalInfo {
- DriverRefNum refNum;
- RegEntryID deviceEntry;
- };
- typedef struct DriverFinalInfo DriverFinalInfo;
- typedef DriverFinalInfo * DriverFinalInfoPtr;
-
- typedef DriverFinalInfo DriverSupersededInfo;
- typedef DriverFinalInfo * DriverSupersededInfoPtr;
-
- /* Contents are command specific*/
-
-
- union IOCommandContents {
- ParmBlkPtr pb;
- DriverInitInfoPtr initialInfo;
- DriverFinalInfoPtr finalInfo;
- DriverReplaceInfoPtr replaceInfo;
- DriverSupersededInfoPtr supersededInfo;
- };
- typedef union IOCommandContents IOCommandContents;
- typedef CALLBACK_API_C( OSErr , DriverEntryPointPtr )(AddressSpaceID SpaceID, IOCommandID CommandID, IOCommandContents Contents, IOCommandCode Code, IOCommandKind Kind);
- /* Record to describe a file-based driver candidate */
-
- struct FileBasedDriverRecord {
- FSSpec theSpec; /* file specification*/
- MacDriverType theType; /* nameInfoStr + version number*/
- Boolean compatibleProp; /* true if matched using a compatible name*/
- UInt8 pad[3]; /* alignment*/
- };
- typedef struct FileBasedDriverRecord FileBasedDriverRecord;
- typedef FileBasedDriverRecord * FileBasedDriverRecordPtr;
- /* Detailed Record to describe a file-based driver candidate. Includes fragment name */
-
- struct FileBasedDriverDetailed {
- FileBasedDriverRecord fileBasedDriver;
- Str63 fragName;
- };
- typedef struct FileBasedDriverDetailed FileBasedDriverDetailed;
- typedef FileBasedDriverDetailed * FileBasedDriverDetailedPtr;
- /* Driver Loader API */
- #define DECLARE_DRIVERDESCRIPTION(N_ADDITIONAL_SERVICES)\
- struct {\
- DriverDescription fixed;\
- DriverServiceInfo additional_service[N_ADDITIONAL_SERVICES-1];\
- };
-
-
- EXTERN_API_C( SInt16 )
- HigherDriverVersion (const NumVersion * driverVersion1,
- const NumVersion * driverVersion2);
-
- EXTERN_API_C( OSErr )
- VerifyFragmentAsDriver (CFragConnectionID fragmentConnID,
- DriverEntryPointPtr * fragmentMain,
- DriverDescriptionPtr * driverDesc);
-
- EXTERN_API_C( OSErr )
- GetDriverMemoryFragment (Ptr memAddr,
- long length,
- ConstStr63Param fragName,
- CFragConnectionID * fragmentConnID,
- DriverEntryPointPtr * fragmentMain,
- DriverDescriptionPtr * driverDesc);
-
- EXTERN_API_C( OSErr )
- GetDriverDiskFragment (FSSpecPtr fragmentSpec,
- CFragConnectionID * fragmentConnID,
- DriverEntryPointPtr * fragmentMain,
- DriverDescriptionPtr * driverDesc);
-
- EXTERN_API_C( OSErr )
- GetNamedDriverDiskFragment (FSSpecPtr fragmentSpec,
- ConstStr63Param fragName,
- CFragConnectionID * fragmentConnID,
- DriverEntryPointPtr * fragmentMain,
- DriverDescriptionPtr * driverDesc);
-
- EXTERN_API_C( OSErr )
- InstallDriverFromFragment (CFragConnectionID fragmentConnID,
- RegEntryID * device,
- UnitNumber beginningUnit,
- UnitNumber endingUnit,
- DriverRefNum * refNum);
-
- EXTERN_API_C( OSErr )
- InstallDriverFromFile (FSSpecPtr fragmentSpec,
- RegEntryID * device,
- UnitNumber beginningUnit,
- UnitNumber endingUnit,
- DriverRefNum * refNum);
-
- EXTERN_API_C( OSErr )
- InstallDriverFromMemory (Ptr memory,
- long length,
- ConstStr63Param fragName,
- RegEntryID * device,
- UnitNumber beginningUnit,
- UnitNumber endingUnit,
- DriverRefNum * refNum);
-
- EXTERN_API_C( OSErr )
- InstallDriverFromResource (SInt16 theRsrcID,
- ConstStr255Param theRsrcName,
- RegEntryIDPtr theDevice,
- UnitNumber theBeginningUnit,
- UnitNumber theEndingUnit,
- DriverRefNum * theRefNum);
-
- EXTERN_API_C( OSErr )
- InstallDriverFromDisk (Ptr theDriverName,
- RegEntryID * theDevice,
- UnitNumber theBeginningUnit,
- UnitNumber theEndingUnit,
- DriverRefNum * theRefNum);
-
- EXTERN_API_C( OSErr )
- FindDriversForDevice (RegEntryID * device,
- FSSpec * fragmentSpec,
- DriverDescription * fileDriverDesc,
- Ptr * memAddr,
- long * length,
- StringPtr fragName,
- DriverDescription * memDriverDesc);
-
- EXTERN_API_C( OSErr )
- FindDriverForDeviceFromFile (RegEntryID * device,
- FSSpec * fragmentSpec,
- DriverDescription * driverDesc,
- StringPtr fragName);
-
- EXTERN_API_C( OSErr )
- FindDriverCandidates (RegEntryID * deviceID,
- Ptr * propBasedDriver,
- RegPropertyValueSize * propBasedDriverSize,
- StringPtr deviceName,
- MacDriverType * propBasedDriverType,
- Boolean * gotPropBasedDriver,
- FileBasedDriverRecordPtr fileBasedDrivers,
- ItemCount * nFileBasedDrivers);
-
- EXTERN_API_C( OSErr )
- FindDriverCandidatesDetailed (RegEntryIDPtr deviceID,
- Ptr * propBasedDriver,
- RegPropertyValueSize * propBasedDriverSize,
- StringPtr deviceName,
- MacDriverType * propBasedDriverType,
- Boolean * gotPropBasedDriver,
- FileBasedDriverDetailedPtr fileBasedDrivers,
- ItemCount * nFileBasedDrivers);
-
- EXTERN_API_C( OSErr )
- ScanDriverCandidates (RegEntryID * deviceID,
- FileBasedDriverRecordPtr fileBasedDrivers,
- ItemCount nFileBasedDrivers,
- FileBasedDriverRecordPtr matchingDrivers,
- ItemCount * nMatchingDrivers);
-
- EXTERN_API_C( OSErr )
- ScanDriverCandidatesDetailed (RegEntryID * deviceID,
- FileBasedDriverDetailedPtr fileBasedDrivers,
- ItemCount nFileBasedDrivers,
- FileBasedDriverDetailedPtr matchingDrivers,
- ItemCount * nMatchingDrivers);
-
- EXTERN_API_C( SInt16 )
- CompareFileCandToPropCand (RegEntryID * device,
- StringPtr deviceName,
- DriverTypePtr propBasedCandidate,
- FileBasedDriverRecordPtr fileBasedCandidate);
-
- EXTERN_API_C( void )
- GetCompatibleProperty (RegEntryID * device,
- StringPtr * compatibleNames,
- ItemCount * nCompatibleNames);
-
- EXTERN_API_C( Boolean )
- CompatibleDriverNames (StringPtr nameInfoStr,
- StringPtr compatibleNames,
- ItemCount nCompatibleNames,
- long * nameCount);
-
- EXTERN_API_C( OSErr )
- GetDriverForDevice (RegEntryID * device,
- CFragConnectionID * fragmentConnID,
- DriverEntryPointPtr * fragmentMain,
- DriverDescriptionPtr * driverDesc);
-
- EXTERN_API_C( OSErr )
- InstallDriverForDevice (RegEntryID * device,
- UnitNumber beginningUnit,
- UnitNumber endingUnit,
- DriverRefNum * refNum);
-
- EXTERN_API_C( OSErr )
- GetDriverInformation (DriverRefNum refNum,
- UnitNumber * unitNum,
- DriverFlags * flags,
- DriverOpenCount * count,
- StringPtr name,
- RegEntryID * device,
- CFragSystem7Locator * driverLoadLocation,
- CFragConnectionID * fragmentConnID,
- DriverEntryPointPtr * fragmentMain,
- DriverDescription * driverDesc);
-
- EXTERN_API_C( OSErr )
- GetDriverDescription (LogicalAddress fragmentPtr,
- DriverDescriptionPtr * theDriverDesc);
-
- EXTERN_API_C( OSStatus )
- GetNamedDriverDescFromFSSpec (FSSpecPtr fragmentSpec,
- StringPtr fragName,
- DriverDescriptionPtr * driverDesc);
-
- EXTERN_API_C( OSErr )
- SetDriverClosureMemory (CFragConnectionID fragmentConnID,
- Boolean holdDriverMemory);
-
- EXTERN_API_C( OSErr )
- ReplaceDriverWithFragment (DriverRefNum theRefNum,
- CFragConnectionID fragmentConnID);
-
- EXTERN_API_C( OSErr )
- OpenInstalledDriver (DriverRefNum refNum,
- SInt8 ioPermission);
-
- EXTERN_API_C( OSErr )
- RenameDriver (DriverRefNum refNum,
- StringPtr newDriverName);
-
- EXTERN_API_C( OSErr )
- RemoveDriver (DriverRefNum refNum,
- Boolean immediate);
-
- EXTERN_API_C( OSErr )
- LookupDrivers (UnitNumber beginningUnit,
- UnitNumber endingUnit,
- Boolean emptyUnits,
- ItemCount * returnedRefNums,
- DriverRefNum * refNums);
-
- EXTERN_API_C( UnitNumber )
- HighestUnitNumber (void);
-
- EXTERN_API_C( OSErr )
- DriverGestaltOn (DriverRefNum refNum);
-
- EXTERN_API_C( OSErr )
- DriverGestaltOff (DriverRefNum refNum);
-
- EXTERN_API_C( Boolean )
- DriverGestaltIsOn (DriverFlags flags);
-
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBOpenSync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBOpenSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA000);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBOpenAsync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBOpenAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA400);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBOpenImmed(__A0)
- #endif
- EXTERN_API( OSErr )
- PBOpenImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA200);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBCloseSync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBCloseSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA001);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBCloseAsync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBCloseAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA401);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBCloseImmed(__A0)
- #endif
- EXTERN_API( OSErr )
- PBCloseImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA201);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBReadSync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBReadSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA002);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBReadAsync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBReadAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA402);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBReadImmed(__A0)
- #endif
- EXTERN_API( OSErr )
- PBReadImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA202);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBWriteSync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBWriteSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA003);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBWriteAsync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBWriteAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA403);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBWriteImmed(__A0)
- #endif
- EXTERN_API( OSErr )
- PBWriteImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA203);
-
- /*
- PBWaitIOComplete is a friendly way for applications to monitor
- a pending asynchronous I/O operation in power-managed and
- preemptive multitasking systems.
- */
- EXTERN_API( OSErr )
- PBWaitIOComplete (ParmBlkPtr paramBlock,
- Duration timeout);
-
-
- EXTERN_API( void )
- AddDrive (short drvrRefNum,
- short drvNum,
- DrvQElPtr qEl);
-
- EXTERN_API( QHdrPtr )
- GetDrvQHdr (void) THREEWORDINLINE(0x2EBC, 0x0000, 0x0308);
-
-
-
- EXTERN_API( DCtlHandle )
- GetDCtlEntry (short refNum);
-
- /*
- SetChooserAlert used to simply set a bit in a low-mem global
- to tell the Chooser not to display its warning message when
- the printer is changed. However, under MultiFinder and System 7,
- this low-mem is swapped out when a layer change occurs, and the
- Chooser never sees the change. It is obsolete, and completely
- unsupported on the PowerPC. 68K apps can still call it if they
- wish.
-
- pascal Boolean SetChooserAlert(Boolean f);
-
- */
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 DriverInstall(__A0, __D0)
- #endif
- EXTERN_API( OSErr )
- DriverInstall (DRVRHeaderPtr drvrPtr,
- short refNum) ONEWORDINLINE(0xA03D);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 DriverInstallReserveMem(__A0, __D0)
- #endif
- EXTERN_API( OSErr )
- DriverInstallReserveMem (DRVRHeaderPtr drvrPtr,
- short refNum) ONEWORDINLINE(0xA43D);
-
- /*
- Note: DrvrInstall() is no longer supported, becuase it never really worked anyways.
- There will soon be a DriverInstall() which does the right thing.
-
- DrvrRemove has been renamed to DriverRemove. But, InterfaceLib for PowerPC
- still exports DrvrRemove, so a macro is used to map the new name to old.
-
- */
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 DrvrRemove(__D0)
- #endif
- EXTERN_API( OSErr )
- DrvrRemove (short refNum) ONEWORDINLINE(0xA03E);
-
- #define DriverRemove(refNum) DrvrRemove(refNum)
-
- /*
- Shim mechnanism only exist in Maxwell world. A Shim is a translation layer
- and looks like a DRVR.
- */
- typedef CALLBACK_API( OSStatus , ShimEntryPoint )(Ptr paramBlock, Ptr refcon);
- EXTERN_API( OSStatus )
- DriverInstallShim (DRVRHeaderPtr drvrPtr,
- ShimEntryPoint shim,
- short refNum,
- void * refcon);
-
- EXTERN_API( OSStatus )
- DriverRemoveShim (short refNum);
-
- EXTERN_API( OSStatus )
- DriverReturnShimRefcon (short refNum,
- void ** refcon);
-
- EXTERN_API_C( OSErr )
- IOShimCommandIsComplete (ParmBlkPtr thePB,
- OSErr result);
-
- #if TARGET_OS_MAC
- #define MacOpenDriver OpenDriver
- #endif
- EXTERN_API( OSErr )
- MacOpenDriver (ConstStr255Param name,
- short * drvrRefNum);
-
- #if TARGET_OS_MAC
- #define MacCloseDriver CloseDriver
- #endif
- EXTERN_API( OSErr )
- MacCloseDriver (short refNum);
-
- EXTERN_API( OSErr )
- Control (short refNum,
- short csCode,
- const void * csParamPtr);
-
- EXTERN_API( OSErr )
- Status (short refNum,
- short csCode,
- void * csParamPtr);
-
- EXTERN_API( OSErr )
- KillIO (short refNum);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 Fetch(__A1)
- #endif
- EXTERN_API( long )
- Fetch (DCtlPtr dce) THREEWORDINLINE(0x2078, 0x08F4, 0x4E90);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 Stash(__A1, __D0)
- #endif
- EXTERN_API( long )
- Stash (DCtlPtr dce,
- char data) THREEWORDINLINE(0x2078, 0x08F8, 0x4E90);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter IODone(__A1, __D0)
- #endif
- EXTERN_API( void )
- IODone (DCtlPtr dce,
- OSErr ioResult) THREEWORDINLINE(0x2078, 0x08FC, 0x4E90);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBControlSync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBControlSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA004);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBControlAsync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBControlAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA404);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBControlImmed(__A0)
- #endif
- EXTERN_API( OSErr )
- PBControlImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA204);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBStatusSync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBStatusSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA005);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBStatusAsync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBStatusAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA405);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBStatusImmed(__A0)
- #endif
- EXTERN_API( OSErr )
- PBStatusImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA205);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBKillIOSync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBKillIOSync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA006);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBKillIOAsync(__A0)
- #endif
- EXTERN_API( OSErr )
- PBKillIOAsync (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA406);
-
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBKillIOImmed(__A0)
- #endif
- EXTERN_API( OSErr )
- PBKillIOImmed (ParmBlkPtr paramBlock) ONEWORDINLINE(0xA206);
-
- EXTERN_API( short )
- OpenDeskAcc (ConstStr255Param deskAccName) ONEWORDINLINE(0xA9B6);
-
- EXTERN_API( void )
- CloseDeskAcc (short refNum) ONEWORDINLINE(0xA9B7);
-
- EXTERN_API_C( short )
- opendeskacc (const char * deskAccName);
-
- EXTERN_API_C( OSErr )
- opendriver (const char * driverName,
- short * refNum);
-
- /*
- The PBxxx() routines are obsolete.
-
- Use the PBxxxSync(), PBxxxAsync(), or PBxxxImmed version instead.
- */
- #define PBControl(pb, async) ((async) ? PBControlAsync(pb) : PBControlSync(pb))
- #define PBStatus(pb, async) ((async) ? PBStatusAsync(pb) : PBStatusSync(pb))
- #define PBKillIO(pb, async) ((async) ? PBKillIOAsync(pb) : PBKillIOSync(pb))
-
- #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
- #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
- #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
- #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
-
-
-
-
-
-
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
-
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __DEVICES__ */
-
-